1. Field of the Invention
This invention relates to communication between clients and servers in a large-scale distributed client/server system.
2. Description of the Related Art
Computer component manufacturers, software developers, and Internet service providers (“ISPs”) continue to develop technology that increases the speed of Internet communication. The emergence of broadband technology, including DSL (digital subscriber lines), ISDN (integrated services digital network), and other broadband communication schemes are due in large part to this common goal. Many software developers are now re-designing existing software to take advantage of new Internet technologies.
User computers must be configured to access broadband Internet communication. Typically, a special modem must be configured, appropriate drivers installed, accounts established and other steps taken to implement the communication link. Moreover, because computer systems are very seldom sold ready for broadband communication, configuration often requires a service person to visit the physical location of the computer to configure it for access to a broadband network.
Rather than send service personnel, broadband service providers have begun to provide client software to be installed on subscribers' computer systems. This client software, also referred to herein as an agent, enables a user to configure access to broadband services automatically, i.e., without the need for a service person to be onsite. The agent solution works well for basic modem installation and configuration. However, the agent must be updated so that the computers, in which the agent is installed, can take advantage of changes to broadband services offered. Accordingly, a need exists to centrally manage and automatically update these agents or other application programs on each of the subscribers' computer systems.
Central management of agents can be performed by a server in communication with client computer systems that contain the agent. One problem in achieving such central management is that at Internet scales, it is impractical for the server to maintain persistent connections to a very large number of clients. Also, in the modern networking world, firewalls, Port Address Translators, Network Address Translators, and the like make it impractical for a server to contact its clients. Furthermore, a large scale deployment of intermittently connected clients requires synchronization of software and configuration information for each client when that client establishes a connection with the server.
A model has been used where the clients periodically poll one or more servers. Servers process each request as it is received, but individually providing a response to each of millions of clients requires significant server hardware and a significant database investment, in addition to the costs of personnel to maintain such a large system.
Broadcasting technology enables servers to broadcast messages to a very large number of clients. However, the bandwidth requirement to send messages to millions of clients can severely degrade network performance. It is desirable to have the capability to provide a message or set of data to an arbitrarily large subset of clients without degrading network performance.
To achieve Internet scales, it may be necessary to provide multiple, equivalent servers to share the load. Clients should see the group of servers as a single source. A large group of servers presents management challenges to server administrators. Common server software and system state information should be efficiently maintained and communicated to all servers, while preserving the clients' unified view.
Furthermore, many large-scale client/server applications require configuration data on the client to correctly operate. This configuration data may evolve as the network environment and business needs change. It is desirable to proactively deliver configuration data to distributed clients by a central administrator as configuration data evolves. In addition, the capability should exist for administrators to post information to the users of broadband networks. Mechanisms exist that rely on user action, but it is desirable that an administrator be able to proactively post generally applicable information onto users' desktops in a large-scale deployment of client computers.
A solution is needed that allows data to be distributed to a very large client base using minimal server resources. The solution should be scalable, efficient, and capable of using a publicly available network, such as the Internet, for distributing data.